package com.qf.commons.web.valid;

import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.*;

/**
 * description: 自定义的校验注解（校验性别的格式）
 * author: Ken
 * 公众号：Java架构栈
 */
@Documented
@Target({ElementType.FIELD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
//自定义校验注解必须标记的注解，方法validatedBy 用于指定实际的校验过程的类
@Constraint(validatedBy = CustemValidHandler.class)
public @interface CustemValid {

    /**
     * 校验失败后的提示信息
     * @return
     */
    String message() default "校验未通过";

    /**
     * 设置校验的分组信息
     * @return
     */
    Class<?>[] groups() default {};

    /**
     * 设置校验的负载 - 原数据
     * @return
     */
    Class<? extends Payload>[] payload() default {};

    /**
     * 指定开发者自定义的 校验处理器
     * @return
     */
    Class<? extends KenValid> handler();
}
